package servico;

import java.util.List;

import dao.*;
import dao.fabrica.*;
import modelo.*;
import util.*;
import excecao.*;

public class UsuarioAppService {

    private static UsuarioDAO usuarioDAO = FabricaDeDAOs.getDAO(UsuarioDAO.class);

    public long inclui(Usuario umUsuario) throws AplicacaoException {
        long numero;

        try {
            numero = usuarioDAO.inclui(umUsuario);

        } catch (ObjetoDuplicadoException e) {
            throw new AplicacaoException("Usu�rio j� cadastrado");
        }

        return numero;
    }

    public void altera(Usuario umUsuario)
            throws AplicacaoException {
        try {
            usuarioDAO.altera(umUsuario);

        } catch (ObjetoNaoEncontradoException e) {
            throw new AplicacaoException("Usuario n�o encontrado");

        }
    }

    public void exclui(long numero)
            throws AplicacaoException {
        try {
           
            Usuario Usuario = usuarioDAO.recuperaUmUsuario(numero);

            usuarioDAO.exclui(Usuario);

        } catch (ObjetoNaoEncontradoException e) {
            
            throw new AplicacaoException("Usuario não encontrado");
        }
    }

    public Usuario recuperaUmUsuario(long numero)
            throws AplicacaoException {
        try {
           
            Usuario umUsuario = usuarioDAO.recuperaUmUsuario(numero);

            return umUsuario;
        } catch (ObjetoNaoEncontradoException e) {
            throw new AplicacaoException("Usuario não encontrado");
        }
    }

    public List<Usuario> recuperaUsuarios() {

        return usuarioDAO.recuperaUsuarios();

    }

    public Usuario valida(String login, String senha) {
        Usuario umUsuario;
        
        umUsuario = usuarioDAO.valida(login, senha);
        
        return umUsuario;


    }
 
}